package com.blockchain.console.service.trading;

import java.io.OutputStream;

import com.blockchain.common.enums.IsPass;
import com.blockchain.console.service.trading.entity.CjjlEntity;
import com.blockchain.console.service.trading.entity.CyljEntity;
import com.blockchain.console.service.trading.entity.JyfqEntity;
import com.blockchain.console.service.trading.entity.JyglEntity;
import com.blockchain.console.service.trading.entity.JyscEntity;
import com.blockchain.console.service.trading.entity.XlbEntity;
import com.blockchain.console.service.trading.query.CyljQuery;
import com.blockchain.console.service.trading.query.JyfqQuery;
import com.blockchain.console.service.trading.query.JyscQuery;
import com.blockchain.console.service.trading.query.TradingQuery;
import com.blockchain.console.service.trading.query.XlbQuery;
import com.blockchain.framework.service.Service;
import com.blockchain.framework.service.query.Paging;
import com.blockchain.framework.service.query.PagingResult;

/**
 * 交易管理
 */
public interface TradingManage extends Service {

	/**
	 * <dt>
	 * <dl>
	 * 描述：查询用户列表信息
	 * </dl>
	 */
	public abstract PagingResult<JyglEntity> tradingSearch(TradingQuery tradingQuery, Paging paging) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：交易分区
	 * </dl>
	 */
	public abstract JyfqEntity[] jyfqSearch() throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：单独查询交易分区
	 * </dl>
	 */
	public abstract JyfqEntity[] jyfqOnlySearch() throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：查询用户列表信息
	 * </dl>
	 */
	public abstract PagingResult<CjjlEntity> cjjlSearch(TradingQuery tradingQuery, Paging paging) throws Throwable;

	/**
	 * <dt>
	 * <dl>
	 * 描述：虚拟币信息列表
	 * </dl>
	 */
	public abstract PagingResult<XlbEntity> xlbSearch() throws Throwable;
	/**
	 * <dt>
	 * <dl>
	 * 描述：虚拟币信息列表
	 * </dl>
	 */
	public abstract PagingResult<XlbEntity> xlbSearch(XlbQuery query, Paging paging) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：虚拟币信息详情
	 * </dl>
	 */
	public abstract XlbEntity getXlb(int id) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：添加虚拟币
	 * </dl>
	 */
	public abstract void addXlb(XlbQuery query) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：修改虚拟币信息
	 * </dl>
	 */
	public abstract void updateXlb(XlbQuery query,int id) throws Throwable;
	

	/**
	 * <dt>
	 * <dl>
	 * 描述：修改虚拟币信息
	 * </dl>
	 */
	public abstract void updateXlbInfo(XlbQuery query,int id) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：删除虚拟币
	 * </dl>
	 */
	public abstract void deleteXlb(int id) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：查询交易分区信息
	 * </dl>
	 */
	public abstract PagingResult<JyfqEntity> jyfqSearch(Paging paging) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：添加交易分区信息
	 * </dl>
	 */
	public abstract void addJyfq(JyfqQuery query) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：查询交易分区信息详情
	 * </dl>
	 */
	public abstract JyfqEntity getJyfq(int fqid) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：修改交易分区信息
	 * </dl>
	 */
	public abstract void updateJyfq(JyfqQuery query,int fqid) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：删除交易分区信息
	 * </dl>
	 */
	public abstract void deleteJyfq(int fqid) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：查询虚拟币信息
	 * </dl>
	 */
	public abstract XlbEntity[] getXlbxx() throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：交易分区启用禁用
	 * </dl>
	 */
	public abstract void sfky(int id,IsPass is) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：查询交易市场信息
	 * </dl>
	 */
	public abstract PagingResult<JyscEntity> jyscSearch(JyscQuery query,Paging paging) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：查询交易市场详情
	 * </dl>
	 */
	public abstract JyscEntity getJysc(int id) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：添加交易市场
	 * </dl>
	 */
	public abstract void addJysc(JyscQuery query) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：修改交易市场
	 * </dl>
	 */
	public abstract void updateJysc(JyscQuery query,int id) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：删除交易市场
	 * </dl>
	 */
	public abstract void deleteJysc(int id) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：交易市场开启关闭交易
	 * 
	 * </dl>
	 */
	public abstract void kjjy(int id,IsPass is) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：交易市场是否显示
	 * 
	 * </dl>
	 */
	public abstract void sfxs(int id,IsPass is) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：查询常用链接信息
	 * </dl>
	 */
	public abstract PagingResult<CyljEntity> cyljSearch(int bid,Paging paging) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：查询常用链接详细信息
	 * </dl>
	 */
	public abstract CyljEntity getCylj(int id) throws Throwable;
	
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：添加常用链接信息
	 * </dl>
	 */
	public abstract void addCylj(int bid,CyljQuery query) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：修改常用链接信息
	 * </dl>
	 */
	public abstract void updateCylj(int id,int bid,CyljQuery query) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：删除常用链接信息
	 * </dl>
	 */
	public abstract void deletecylj(int id) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：查询常用链接信息
	 * </dl>
	 */
	public abstract PagingResult<CyljEntity> xxcsSearch(int bid,Paging paging) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：查询常用链接详细信息
	 * </dl>
	 */
	public abstract CyljEntity getXxcs(int id) throws Throwable;
	
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：添加常用链接信息
	 * </dl>
	 */
	public abstract void addXxcs(int bid,CyljQuery query) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：修改常用链接信息
	 * </dl>
	 */
	public abstract void updateXxcs(int id,int bid,CyljQuery query) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：删除常用链接信息
	 * </dl>
	 */
	public abstract void deleteXxcs(int id) throws Throwable;
	
	/**
	 * <dt>
	 * <dl>
	 * 描述：委托管理导出
	 * </dl>
	 */
	public void export(JyglEntity[] txglRecord, OutputStream outputStream,
			String charset) throws Throwable;
	

	
}
